package cn.itcast.nems.studentrecord.dao.dataobject;

import cn.itcast.nems.employee.dao.bean.EmployeeGroupBean;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class JournalRenewalDO extends ApprovalFormQueryModel{
    private String id ;
    /**
     * 业务日期;为可能的补录单子准备，如果不存在补录的情况，该字段旧等于创建时间
     */
    private LocalDateTime bizDate ;
    /**
     * 升级到到目标班级
     */
    private Integer targetClazzId ;
    /**
     * 升级到的目标班级名称
     */
    private String targetClazzName ;
    /**
     * 目标班级原始价格
     */
    private Integer targetClazzPrice;
    /**
     * 目标班级所属学科ID
     */
    private String targetClazzSubjectId ;
    /**
     * 目标班级所属学科名称
     */
    private String targetClazzSubjectName ;
    /**
     * 目标班级所在校区ID
     */
    private String targetClazzCampusId ;
    /**
     * 校区ID LIST 支持多个小区ID进行查询
     */
    private List<String> targetClazzCampusIds ;

    /**
     * 目标班级所在校区名称
     */
    private String targetClazzCampusName ;
    /**
     * 目标班级授课模式ID
     */
    private String targetClazzModelId ;
    /**
     * 目标班级授课模式名称
     */
    private String targetClazzModelName ;
    /**
     * 升班总学籍数
     */
    private Integer renewalQuantity ;
    /**
     * 已缴费学籍数;基于订单支付事件消息处理：订单来源为“升级”时，通过订单ID查询升级凭单订单关系表确定对应升级凭单并标记状态。
     */
    private Integer paidQuantity;
    /**
     * 状态;枚举值：草稿｜DRAFT、审批中｜PENDING、审批通过处理中｜APPROVED、审批未通过且流程结束｜REJECTED、审批通过并处理完成｜FINISHED
     */
    private String state ;

    private LocalDate createdStartTime ;
    private LocalDate createdEndTime ;
    /**
     * 备注
     */
    private String remark;
    private LocalDateTime createdDatetime ;

    private String scopeOrCreatedBy; // 我创建的
    private List<String> scopeOrIdIn; // 需要我审批的 ： 我审批过的 + 知会我的
    private String scopeOrIdInCreatedBy;

    /**
     * 审批单ID
     */
    private String formId ;
    /**
     * category：1：审批）2：知会）
     */
    private Integer category ;
    private List<EmployeeGroupBean> employeeGroups;
    /**
     * 创建人邮箱
     */
    private String createdBy ;
}
